﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WBGModel;
using System.Data;

namespace WBGDal
{
    public class DalDepartamento : ICRUD
    {
        public List<ModelDepartamento> Listar()
        {
            return Listar("");
        }

        public List<ModelDepartamento> Listar(string filtro)
        {
            String cmd = "SELECT * FROM Departamento" + (filtro.CompareTo("") == 0 ? "" : " WHERE " + filtro);
            return ConvertToList(UtilBanco.ExecComRetorno(cmd));
        }

        private List<ModelDepartamento> ConvertToList(DataTable resultSet)
        {
            List<ModelDepartamento> lst = new List<ModelDepartamento>();
            for (int i = 0; i < resultSet.Rows.Count; i++)
			{
                DataRow dr = resultSet.Rows[i];
                ModelDepartamento dep = new ModelDepartamento();
                dep.idDepartamento = Convert.ToInt32(dr["idDepartamento"]);
                dep.nome = dr["nome"].ToString();
                dep.email = dr["email"].ToString();
                if (dr["responsavel"] == DBNull.Value)
                    dep.idResponsavel = null;
                else
                    dep.idResponsavel = Convert.ToInt32(dr["responsavel"]);
                dep.ativo = Convert.ToBoolean(dr["ativo"]);
                lst.Add(dep);
			}
            return lst;
        }
        public void Inserir(ModelDepartamento obj)
        {
            String cmd = String.Format("INSERT INTO Departamento (nome,email,ativo) VALUES ('{0}','{1}','{2}')", obj.nome, obj.email, obj.ativo);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Alterar(ModelDepartamento obj)
        {
            String cmd = String.Format("UPDATE Departamento SET nome='{0}', email='{1}', ativo='{2}' WHERE idDepartamento={3}", obj.nome, obj.email, obj.ativo, obj.idDepartamento);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Deletar(int id)
        {
            String cmd = String.Format("DELETE FROM Departamento WHERE idDepartamento={0}", id);
            UtilBanco.ExecSemRetorno(cmd);
        }
    }
}
